The present invention is directed to methods and systems for policy-based optimization of the placement of virtual servers across data centers.
Virtualization is the act of creating a virtual version of a computer system, including for example an operating system, storage device, or other computer resource. Virtualization enables the separation of an image layer, such as an operating system or application, from the underlying hardware platform. Accordingly, images can be freely moved from one physical host to another physical host without significantly affecting the operating system or application.
Modern hosting providers often move images between data centers within their system for a variety of reasons, including for load balancing. Virtualization and load balance is particularly important due to the growing popularity of cloud computing, in which users have access to a shared pool of computing resources.
The geographical location of virtual images or virtual data can be important for several reasons. For example, moving an image from a first location to a second location can change the response time of an application due to network latency changes. As another example, there are often laws, regulations, and/or organization-specific rules about whether data can be stored in a certain country or political unit. Some countries, for example, regulate the transfer or storage of personal information across jurisdictional or geographical boundaries. Examples of these regulations are the European Commission's Directive on Data Protection 95/46/EC and the Swiss Federal Act on Data Protection. As another example, in order to maximize disaster recovery it is often desirable to have data or servers located at different data centers or even within different countries. As yet another example, an organization audit may require exact information about the geographic location of all images, and/or may require a specific organization of all images within the system in order to facilitate the audit.
There are currently methods for the geographic dispersal of a virtualized computer system among multiple servers or storage devices. However, most current methods treat the dispersed servers or storage devices as being equal, without regard for any rules or policy about the distribution.
Accordingly, there is a continued need in the art for automated methods and systems that disperse virtual images or data among devices in multiple locations according to a policy comprising a set of rules.